export interface selectLV {
  label: string;
  value: any;
}

export interface SpecialData extends DataSourceItem {
  labelValues: DataSourceItem[];
}
export interface DataSourceItem {
  id: number,
  name: string;
  value?: any;
  selected: boolean;
}
export type SpecialModalType = 'add' | 'edit';
export interface EditAddModalProps {
  visible: boolean;
  title: string;
  dataSource: {} | [];
  type: SpecialModalType;
  handleOkCallback: (type: SpecialModalType, data: any) => void;
  handleCancelCallback: () => void;
}

export interface SelectDetailProps {
  visible: boolean;
  title: string;
  dataSource: DataSourceItem[];
  checkKeys: string[];
  handleOkCallback: (keys: any, tags: any) => void;
  handleCancelCallback: () => void;
}

export interface DataCardProps {
  dataSource: SpecialData;
  removeHandleCallback: (key: string | number, item: SpecialData) => void;
}

export interface TagsBlocklProps {
  dataSource: DataSourceItem[];
  removeCurrentTag: (value: string) => void;
}

export interface SpecialBlockListProps {
  dataSource: SpecialData[];
  pageType:SpecialModalType,
  formDisabled: boolean | undefined;
  addEditSpecialDataHandle: (type: SpecialModalType, data: any) => void;
  removeHandleCallback: (key: string | number, item: SpecialData) => void;
}